1. Field of the Invention
The present invention relates to a vehicle diagnosis system which conducts failure diagnosis and the like of a vehicle, and more particularly the invention is directed to prevention of erroneous abnormality or control information from a vehicle control unit to a diagnosis unit.
2. Description of Related Art
There is conventionally available a vehicle diagnosis system which detects various abnormalities in sensors, actuators or the like by means of a controller (vehicle control unit) mounted on a vehicle, stores abnormality information (code or data) about detected abnormalities, and reads out or erases the abnormality information stored in the controller by means of a diagnosis unit provided externally to the controller.
In the above-mentioned vehicle diagnosis system, when the diagnosis unit issues a read request of the abnormality information during execution of erase of the abnormality information in the controller in response to an erase request of the abnormality information from the diagnosis unit, the abnormality information before erasing is returned or transmitted to the diagnosis unit.
In the controller, it is the usual practice to conduct processing between the controller and the above-mentioned diagnosis unit and various processing operations for control of the vehicle such as engine control and transmission control within the same controller. Therefore, the controller is constructed by a plurality of CPUs (central processing units), and direct memory access (hereinafter simply referred to as "DMA") is used for data communication between the individual CPUs. In such a case, the problem mentioned above apparently appears, because the CPU effecting communication with the diagnosis unit cannot determine whether the data transmitted from the other CPUs through DMA is the one before or after erasing, with such data alone.
More particularly, in order to improve performance of the controller, various controls are divided to be shared by a plurality of CPUs ant the abnormality information, control information (RAM-value stored in RAM of the controller), is transmitted and received among the CPUs mutually by the use of direct memory access function (DMA).
In the event the control information of the controller constituted by a plurality of CPUs are read out by the diagnosis unit upon the read request from the diagnosis unit, a main CPU which transmits and receives data with the diagnosis unit first transmits by DMA an address value of RAM corresponding to the requested control information to a corresponding CPU. Then, the corresponding CPU responsively sends out to the main CPU the control information corresponding to the address value transmitted by DMA along with the address value. When the address value sent from the corresponding CPU by DMA agrees with the requested address value, the main CPU judges that the responding process by the corresponding CPU has been completed and sends out the control information to the diagnosis unit.
However, in case the data transmission is performed by DMA the DMA transmits to the corresponding CPUs sequentially the data (address value, control values and the like) stored in the DMA region at every prescribed interval (4 ms, for instance). As a result, data transmission cannot be managed by software. Therefore, even when the main CPU confirms that the address value transmitted from the corresponding CPU by DMA has agreed with the requested address value, there arises a case in which the control information at that moment does not correspond to the address value and there remains a possibility that erroneous information is transmitted to the diagnosis unit.